package jdk9_new_features;

import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class FeatureDemo {


    public static void main(String[] args) {

        //jdk6
        Map<String,Integer> map7 = new HashMap<String,Integer>();

        // java7和8 <>没有了数据类型
        Map<String,Integer> map8 = new HashMap<>();

        //jdk9 添加了匿名内部类的功能 后面添加了大括号{}  可以做一些细节的操作
        //Map<String,Integer> map9 = new HashMap<>(){};

        //Set<String> set = new HashSet<>(){
//            @Override
//            public boolean add(String s) {
//                return super.add(s + "..");
//            }
//        };

        /**
         * +++++++++++++++++++++++++++++++++++++++++++++++++++
         *  异常处理 try catch   start
         *  ++++++++++++++++++++++++++++++++++++++++++++++++++
         */

        //java7及以前写法  每一个流打开的时候都要关闭
        InputStreamReader reader = null;
        try{
            reader = new InputStreamReader(System.in);
            reader.read();
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            if (reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        //java7和8及 每一个流打开的时候都要关闭,但是在try的括号中来进行关闭
        try(InputStreamReader reader7 =new InputStreamReader(System.in)){
            reader7.read();
        }catch (IOException e){
            e.printStackTrace();
        }

        //java9及 每一个流打开的时候都要关闭,但是在try的括号中来进行关闭，在
        //java8的基础上进一步升级 直接在try括号中直接写入 变量就好，如果有多个流，就用分号隔开
        //try(reader;writer){}
//        InputStreamReader reader9 =new InputStreamReader(System.in);
//        try(reader9){
//            reader9.read();
//        }catch (IOException e){
//            e.printStackTrace();
//        }




    }




}
